<template>
  <div class="content">
    <div class="mume markdown-preview">
      <h1 class="mume-header" id="headphones-sisu-audio-annotation-sisu-aa">
        &#x1F3A7; SISU Audio Annotation (SISU AA)
      </h1>

      <hr />
      <h2 class="mume-header undefined" id="1">
        &#x1F4A1; About the SISU AA project
      </h2>

      <p>
        SISU Audio Annotation (SISU AA) is a paltform for speech-transcription
        alignment and annotation, mainly intended for use by speech researchers
        and professionals. It is designed by SISU AA group in Institute of
        Corpus Studies and Applications of Shanghai International Studies
        University. In this platform, your can upload your audio files and texts
        files in pairs after logging in to your account to quickly acquire the
        time-aligned version with multiple layers and formats according to your
        choices. Just click a few button, your speech corpus will be there!<br />
        For more detailed information about the operations in SISU AA and other
        available tools, please see the <a href="#2">User Guide</a> part on this
        page.
      </p>
      <blockquote>
        <p>Here are some major SISU AA-related resources:</p>
        <blockquote>
          <p>
            Montreal Forced Aligner<br />
            <a
              href="https://github.com/MontrealCorpusTools/Montreal-Forced-Aligner">https://github.com/MontrealCorpusTools/Montreal-Forced-Aligner</a>
          </p>
          <p>
            Kaldi<br />
            <a href="https://github.com/kaldi-asr/kaldi">https://github.com/kaldi-asr/kaldi</a>
          </p>
          <p>
            PyPinyin<br />
            <a href="https://github.com/mozillazg/python-pinyin">https://github.com/mozillazg/python-pinyin</a>
          </p>
          <p>
            OpenCC<br />
            <a href="https://github.com/BYVoid/OpenCC">https://github.com/BYVoid/OpenCC</a>
          </p>
          <p>
            jieba<br />
            <a href="https://github.com/fxsjy/jieba">https://github.com/fxsjy/jieba</a>
          </p>
        </blockquote>
      </blockquote>
      <hr />
      <h2 class="mume-header undefined" id="2">&#x1F481; User Guide</h2>

      <p>
        Oops, SISU AA cannot help you to make speech corpus out of nothing! So
        before setting projects up in SISU AA, you should prepare your raw
        materials as the following requirements.
      </p>
      <h3 class="mume-header undefined" id="3">&#x1F4C2; Data preparation</h3>

      <h5 class="mume-header" id="notes-audio">&#x1F3B6; Audio</h5>

      <ul>
        <li>
          The type of the audio must be <em><strong>.wav</strong></em> and it is
          recommended that <em>each audio does not exceeds 30 seconds</em>.
        </li>
      </ul>
      <h5 class="mume-header" id="bookmark_tabs-text">&#x1F4D1; Text</h5>

      <ul>
        <li>
          The type of the text must be <em><strong>.txt</strong></em> and
          <em>only &#x201C;UTF-8&#x201D; codec is currently available for text
            files uploaded</em>.
        </li>
      </ul>
      <h5 class="mume-header" id="heavy_exclamation_mark-notes">
        &#x2757;&#xFE0F; Notes:
      </h5>

      <ul>
        <li>
          Each pair of audio file and text file in your corpus should have
          <em>idential file names</em>. E.g. the text file
          &#x201C;piece_01.txt&#x201D; will be attached to an audio file named
          &#x201C;piece_01.wav&#x201D;. For each case without corresponding text
          file, you can still input the transcriptional text manually in the
          text editor we provided or upload it again. For each case with extra
          text files, those name-unmached will be removed and the repeated ones
          will be overwritten by the later.
        </li>
        <li>
          <em>Audio files are necessary!</em> You should upload your audio files
          first because the corpus validations for naming and quantity depend on
          the audio files have been uploaded.
        </li>
        <li>
          <em>Text files are optional but recommended to upload direct</em>
          although you are allowed to write them on the text editor we provided.
          The text file corresponding to a certain audio file is its plain and
          full transcription without any other prepocessing and special symbols.
          To some extent, the accuracy of transcription will affect the accuracy
          of the alignment and annotation.
        </li>
      </ul>
      <blockquote>
        <p>Here are some recomanded preprocess tools:</p>
        <blockquote>
          <p>Segmenter (cut the long audio to some short parts):</p>
          <ul>
            <li>
              CTC segmentation (<a
                href="https://github.com/lumaku/ctc-segmentation">https://github.com/lumaku/ctc-segmentation</a>)
            </li>
            <li>
              AudioSegment (<a
                href="https://github.com/MaxStrange/AudioSegment">https://github.com/MaxStrange/AudioSegment</a>)
            </li>
          </ul>
          <p>Transcriber (convert audio to text):</p>
          <ul>
            <li>Coqui (<a href="https://coqui.ai/">https://coqui.ai/</a>)</li>
            <li>
              Happyscribe (<a
                href="https://www.happyscribe.com/automatic-transcription-software">https://www.happyscribe.com/automatic-transcription-software</a>)
            </li>
          </ul>
        </blockquote>
      </blockquote>
      <br />
      Now, it&apos;s time to start a SISU AA project from getting your own
      account.
      <h3 class="mume-header undefined" id="4">&#x2B50;&#xFE0F;Home page</h3>

      <ul>
        <li>
          If you have no account yet, you can click on&#x1F4CD;<em><strong>Sign up</strong></em>
          to create one.
        </li>
        <li>
          If you already have an account, click on &#x1F4CD;<em><strong>Log in</strong></em>
          to enter it.
        </li>
        <li>
          &#x1F4CD;<em><strong>Contact us</strong></em> button is for you to
          email us.
        </li>
      </ul>
      <h3 class="mume-header" id="startools-page">
        &#x2B50;&#xFE0F;Tools page
      </h3>

      <h5 class="mume-header" id="outbox_tray-upload">&#x1F4E4; Upload</h5>

      <ul>
        <li>
          The first step of a projct is to name it simply in the &#x1F4DD;<em><strong>Box of Project
              Name</strong></em>.<br />
          <em>(More detailed requirements of audios and texts can be seen in
            <a href="#3">Data preparation</a>)</em>
        </li>
        <li>
          Then you should click on &#x1F4CD;<em><strong>Upload Audio</strong></em>
          button and choose your <em><strong>.wav</strong></em> audios need to
          be annotated from the displayed file folder. After uploading, you can
          listen to each audio online by controlling &#x1F4CD;<em><strong>Play/Pause</strong></em>,
          &#x1F4CD;<em><strong>Progress Bar</strong></em> and &#x1F4CD;<em><strong>Volume</strong></em>
          and you can adjust speed or download it by options in &#x1F4CD;<em><strong>More</strong></em>.
        </li>
        <li>
          As for the uploading of transcriptions of those audios, the following
          two ways are designed for you:
          <ul>
            <li>
              You can click on &#x1F4CD;<em><strong>Upload Text</strong></em> to
              choose and upload your prepared
              <em><strong>.txt</strong></em> transcriptions from your local file
              folder direct.
            </li>
            <li>
              However, if you have no prepared texts or if you want to modify
              the content of some certain texts uploaded, you can just click on
              the item and edit them in the &#x1F4DD;<em><strong>Edit box</strong></em>
              below. &#x1F4CD;<em><strong>Clear</strong></em> and &#x1F4CD;<em><strong>Save</strong></em>
              are used to clear and save the manually inputed words
              respectively.
            </li>
          </ul>
        </li>
        <li>
          If you want to delete some certain audios or texts, you can use
          &#x2716;&#xFE0F; on the top of the items, or you can also use
          &#x1F4CD;<em><strong>Reset</strong></em> to delete all uploaded files
          by only one click.
        </li>
        <li>
          When all files are matched and ready, you can just click on
          &#x1F4CD;<em><strong>Next</strong></em> button to begin the next part:
          Setting.
        </li>
      </ul>
      <h5 class="mume-header" id="gear-setting">&#x2699;&#xFE0F; Setting</h5>

      <ul>
        <li>
          You need to set input formats by &#x1F518;, which includs Accent and
          Speaker, according to the conditions of the files you have uploaded in
          the current project (default options are showed in bold).<br />
          <img src="@/assets/img/input_setting.png"  title="input setting" />
        </li>
        <li>
          By clicking on the &#x1F4DD;<em><strong>Box of Custom Dictionary</strong></em>, you can upload your own
          <strong>.txt</strong> dictionary as a
          reference during the process of the annotation.
        </li>
        <li>
          You can choose <em>1-5</em> layers and their formats of outputs by
          &#x1F518; according to your needs. Here is a list of available choices
          and their examples (default options are showed in bold):<br />
          <img src="@/assets/img/output_setting.png"  title="output setting" />
        </li>
        <li>
          Check your choices and click on &#x1F4CD;<em><strong>Next</strong></em>
          button to begin the annotation.
        </li>
      </ul>
      <h5 class="mume-header" id="inbox_tray-download">&#x1F4E5; Download</h5>

      <ul>
        <li>
          The first line shows the state of result, including Success and
          Failure. When the current project finishs in whichever state, you can
          click on &#x1F4CD;<em><strong>Return to Upload</strong></em> button to
          reset this project from Upload section and restart it.
        </li>
        <li>
          The second line provides &#x1F4CD;<em><strong>Download</strong></em>
          button for you to get your output package only if the state of your
          project is &quot;Success&quot;.
        </li>
      </ul>
      <h3 class="mume-header" id="stardocumentation-page">
        &#x2B50;&#xFE0F;Documentation page
      </h3>

      <ul>
        <li>
          You can get all SISU AA-related information, including
          <a href="#1">related resources</a> applied by SISU AA,
          <a href="#3">tips and recomanded tools</a> for preprocessing,
          <a href="#4">instructions</a> for every function, on this page.
        </li>
      </ul>
      <h3 class="mume-header" id="starhelp-page">&#x2B50;&#xFE0F;Help page</h3>

      <ul>
        <li>You can get contact with us by email on this page.</li>
      </ul>
      <h3 class="mume-header" id="staruser-page">&#x2B50;&#xFE0F;User page</h3>

      <ul>
        <li>
          You can check informations about all your previous projects, including
          No., Project Name, Setting, The Number of Files, Start Time, Finish
          Time, State and Operation in the Task Management section.
        </li>
        <li>
          &#x1F4CD;<em><strong>Details</strong></em> button in Setting column
          let you to check all input and output settings of a certain project.
        </li>
        <li>
          &#x1F4CD;<em><strong>Download</strong></em> button in Operation column
          let you redownload the results files only if the State of the project
          is &quot;Success&quot;.
        </li>
      </ul>
      <h3 class="mume-header" id="staraccount-page">
        &#x2B50;&#xFE0F;Account page
      </h3>

      <ul>
        <li>
          You can check and modify your account information, including Name,
          Gender, Country, Institute and Purpose on this page. After any
          modification, you can click on &#x1F4CD;<em><strong>Save</strong></em>
          to save.
        </li>
        <li>
          &#x1F4CD;<em><strong>Log out</strong></em> button is for you to exit
          SISU AA.
        </li>
        <li>
          &#x1F4CD;<em><strong>Change Password</strong></em> button is for you
          to reset the password of your current account.
        </li>
        <li>
          &#x1F4CD;<em><strong>Delete Account</strong></em> button is for you to
          close your SISU AA account.
        </li>
        <li></li>
      </ul>
      <h3 class="mume-header" id="white_check_mark-view-the-textgrid-file">
        &#x2705; View the textgrid file
      </h3>

      <ul>
        <li>
          After getting your results files in the format of
          <em><strong>.TextGrid</strong></em>, you can view and analyze them in &#x1F533;
          <em><strong>Praat</strong></em>, a software which can be downloaded from the website:
        </li>
      </ul>
      <blockquote>
        <p>
          <a href="https://www.fon.hum.uva.nl/praat/">https://www.fon.hum.uva.nl/praat/</a>
        </p>
      </blockquote>
      <ul>
        <li>
          Example:<br />
          <img src="@/assets/img/praat_example.png" alt title="praat example" />
        </li>
      </ul>
    </div>
  </div>
</template>

<style lang="less" scoped>
li {
  line-height: 24px;
  text-align: justify;
}
p{
  line-height: 22px;
  text-align: justify;
}
.content {
  padding: 30px;

  max-width: 1200px;
  margin: 20px auto;
}

code[class*="language-"],
pre[class*="language-"] {
  color: #333;
  background: none;
  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.4;

  -moz-tab-size: 8;
  -o-tab-size: 8;
  tab-size: 8;

  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
  padding: .8em;
  overflow: auto;
  /* border: 1px solid #ddd; */
  border-radius: 3px;
  /* background: #fff; */
  background: #f5f5f5;
}

/* Inline code */
:not(pre)>code[class*="language-"] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal;
  background: #f5f5f5;
}

.token.comment,
.token.blockquote {
  color: #969896;
}

.token.cdata {
  color: #183691;
}

.token.doctype,
.token.punctuation,
.token.variable,
.token.macro.property {
  color: #333;
}

.token.operator,
.token.important,
.token.keyword,
.token.rule,
.token.builtin {
  color: #a71d5d;
}

.token.string,
.token.url,
.token.regex,
.token.attr-value {
  color: #183691;
}

.token.property,
.token.number,
.token.boolean,
.token.entity,
.token.atrule,
.token.constant,
.token.symbol,
.token.command,
.token.code {
  color: #0086b3;
}

.token.tag,
.token.selector,
.token.prolog {
  color: #63a35c;
}

.token.function,
.token.namespace,
.token.pseudo-element,
.token.class,
.token.class-name,
.token.pseudo-class,
.token.id,
.token.url-reference .token.variable,
.token.attr-name {
  color: #795da3;
}

.token.entity {
  cursor: help;
}

.token.title,
.token.title .token.punctuation {
  font-weight: bold;
  color: #1d3e81;
}

.token.list {
  color: #ed6a43;
}

.token.inserted {
  background-color: #eaffea;
  color: #55a532;
}

.token.deleted {
  background-color: #ffecec;
  color: #bd2c00;
}

.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}


/* JSON */
.language-json .token.property {
  color: #183691;
}

.language-markup .token.tag .token.punctuation {
  color: #333;
}

/* CSS */
code.language-css,
.language-css .token.function {
  color: #0086b3;
}

/* YAML */
.language-yaml .token.atrule {
  color: #63a35c;
}

code.language-yaml {
  color: #183691;
}

/* Ruby */
.language-ruby .token.function {
  color: #333;
}

/* Markdown */
.language-markdown .token.url {
  color: #795da3;
}

/* Makefile */
.language-makefile .token.symbol {
  color: #795da3;
}

.language-makefile .token.variable {
  color: #183691;
}

.language-makefile .token.builtin {
  color: #0086b3;
}

/* Bash */
.language-bash .token.keyword {
  color: #0086b3;
}

/* highlight */
pre[data-line] {
  position: relative;
  padding: 1em 0 1em 3em;
}

pre[data-line] .line-highlight-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  display: block;
  width: 100%;
}

pre[data-line] .line-highlight {
  position: absolute;
  left: 0;
  right: 0;
  padding: inherit 0;
  margin-top: 1em;
  background: hsla(24, 20%, 50%, .08);
  background: linear-gradient(to right, hsla(24, 20%, 50%, .1) 70%, hsla(24, 20%, 50%, 0));
  pointer-events: none;
  line-height: inherit;
  white-space: pre;
}

pre[data-line] .line-highlight:before,
pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-start);
  position: absolute;
  top: .4em;
  left: .6em;
  min-width: 1em;
  padding: 0 .5em;
  background-color: hsla(24, 20%, 50%, .4);
  color: hsl(24, 20%, 95%);
  font: bold 65%/1.5 sans-serif;
  text-align: center;
  vertical-align: .3em;
  border-radius: 999px;
  text-shadow: none;
  box-shadow: 0 1px white;
}

pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-end);
  top: auto;
  bottom: .4em;
}

html body {
  font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #333;
  background-color: #fff;
  overflow: initial;
  box-sizing: border-box;
  word-wrap: break-word
}

html body>:first-child {
  margin-top: 0
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6 {
  line-height: 1.2;
  margin-top: 1em;
  margin-bottom: 16px;
  color: #000
}

html body h1 {
  font-size: 2.25em;
  font-weight: 300;
  padding-bottom: .3em
}

html body h2 {
  font-size: 1.75em;
  font-weight: 400;
  padding-bottom: .3em
}

html body h3 {
  font-size: 1.5em;
  font-weight: 500
}

html body h4 {
  font-size: 1.25em;
  font-weight: 600
}

html body h5 {
  font-size: 1.1em;
  font-weight: 600
}

html body h6 {
  font-size: 1em;
  font-weight: 600
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5 {
  font-weight: 600
}

html body h5 {
  font-size: 1em
}

html body h6 {
  color: #5c5c5c
}

html body strong {
  color: #000
}

html body del {
  color: #5c5c5c
}

html body a:not([href]) {
  color: inherit;
  text-decoration: none
}

html body a {
  color: #08c;
  text-decoration: none
}

html body a:hover {
  color: #00a3f5;
  text-decoration: none
}

html body img {
  max-width: 100%
}

html body>p {
  margin-top: 0;
  margin-bottom: 16px;
  word-wrap: break-word
}

html body>ul,
html body>ol {
  margin-bottom: 16px
}

html body ul,
html body ol {
  padding-left: 2em
}

html body ul.no-list,
html body ol.no-list {
  padding: 0;
  list-style-type: none
}

html body ul ul,
html body ul ol,
html body ol ol,
html body ol ul {
  margin-top: 0;
  margin-bottom: 0
}

html body li {
  margin-bottom: 0
}

html body li.task-list-item {
  list-style: none
}

html body li>p {
  margin-top: 0;
  margin-bottom: 0
}

html body .task-list-item-checkbox {
  margin: 0 .2em .25em -1.8em;
  vertical-align: middle
}

html body .task-list-item-checkbox:hover {
  cursor: pointer
}

html body blockquote {
  margin: 16px 0;
  font-size: inherit;
  padding: 0 15px;
  color: #5c5c5c;
  background-color: #f0f0f0;
  border-left: 4px solid #d6d6d6
}

html body blockquote>:first-child {
  margin-top: 0
}

html body blockquote>:last-child {
  margin-bottom: 0
}

html body hr {
  height: 4px;
  margin: 32px 0;
  background-color: #d6d6d6;
  border: 0 none
}

html body table {
  margin: 10px 0 15px 0;
  border-collapse: collapse;
  border-spacing: 0;
  display: block;
  width: 100%;
  overflow: auto;
  word-break: normal;
  word-break: keep-all
}

html body table th {
  font-weight: bold;
  color: #000
}

html body table td,
html body table th {
  border: 1px solid #d6d6d6;
  padding: 6px 13px
}

html body dl {
  padding: 0
}

html body dl dt {
  padding: 0;
  margin-top: 16px;
  font-size: 1em;
  font-style: italic;
  font-weight: bold
}

html body dl dd {
  padding: 0 16px;
  margin-bottom: 16px
}

html body code {
  font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
  font-size: .85em !important;
  color: #000;
  background-color: #f0f0f0;
  border-radius: 3px;
  padding: .2em 0
}

html body code::before,
html body code::after {
  letter-spacing: -0.2em;
  content: "\00a0"
}

html body pre>code {
  padding: 0;
  margin: 0;
  font-size: .85em !important;
  word-break: normal;
  white-space: pre;
  background: transparent;
  border: 0
}

html body .highlight {
  margin-bottom: 16px
}

html body .highlight pre,
html body pre {
  padding: 1em;
  overflow: auto;
  font-size: .85em !important;
  line-height: 1.45;
  border: #d6d6d6;
  border-radius: 3px
}

html body .highlight pre {
  margin-bottom: 0;
  word-break: normal
}

html body pre code,
html body pre tt {
  display: inline;
  max-width: initial;
  padding: 0;
  margin: 0;
  overflow: initial;
  line-height: inherit;
  word-wrap: normal;
  background-color: transparent;
  border: 0
}

html body pre code:before,
html body pre tt:before,
html body pre code:after,
html body pre tt:after {
  content: normal
}

html body p,
html body blockquote,
html body ul,
html body ol,
html body dl,
html body pre {
  margin-top: 0;
  margin-bottom: 16px
}

html body kbd {
  color: #000;
  border: 1px solid #d6d6d6;
  border-bottom: 2px solid #c7c7c7;
  padding: 2px 4px;
  background-color: #f0f0f0;
  border-radius: 3px
}

@media print {
  html body {
    background-color: #fff
  }

  html body h1,
  html body h2,
  html body h3,
  html body h4,
  html body h5,
  html body h6 {
    color: #000;
    page-break-after: avoid
  }

  html body blockquote {
    color: #5c5c5c
  }

  html body pre {
    page-break-inside: avoid
  }

  html body table {
    display: table
  }

  html body img {
    display: block;
    max-width: 100%;
    max-height: 100%
  }

  html body pre,
  html body code {
    word-wrap: break-word;
    white-space: pre
  }
}

.markdown-preview {
  width: 100%;
  height: 100%;
  box-sizing: border-box
}

.markdown-preview .pagebreak,
.markdown-preview .newpage {
  page-break-before: always
}

.markdown-preview pre.line-numbers {
  position: relative;
  padding-left: 3.8em;
  counter-reset: linenumber
}

.markdown-preview pre.line-numbers>code {
  position: relative
}

.markdown-preview pre.line-numbers .line-numbers-rows {
  position: absolute;
  pointer-events: none;
  top: 1em;
  font-size: 100%;
  left: 0;
  width: 3em;
  letter-spacing: -1px;
  border-right: 1px solid #999;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none
}

.markdown-preview pre.line-numbers .line-numbers-rows>span {
  pointer-events: none;
  display: block;
  counter-increment: linenumber
}

.markdown-preview pre.line-numbers .line-numbers-rows>span:before {
  content: counter(linenumber);
  color: #999;
  display: block;
  padding-right: .8em;
  text-align: right
}

.markdown-preview .mathjax-exps .MathJax_Display {
  text-align: center !important
}

.markdown-preview:not([for="preview"]) .code-chunk .btn-group {
  display: none
}

.markdown-preview:not([for="preview"]) .code-chunk .status {
  display: none
}

.markdown-preview:not([for="preview"]) .code-chunk .output-div {
  margin-bottom: 16px
}

.scrollbar-style::-webkit-scrollbar {
  width: 8px
}

.scrollbar-style::-webkit-scrollbar-track {
  border-radius: 10px;
  background-color: transparent
}

.scrollbar-style::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background-color: rgba(150, 150, 150, 0.66);
  border: 4px solid rgba(150, 150, 150, 0.66);
  background-clip: content-box
}

html body[for="html-export"]:not([data-presentation-mode]) {
  position: relative;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  overflow: auto
}

html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview {
  position: relative;
  top: 0
}

@media screen and (min-width:914px) {
  html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview {
    padding: 2em calc(50% - 457px + 2em)
  }
}

@media screen and (max-width:914px) {
  html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview {
    padding: 2em
  }
}

@media screen and (max-width:450px) {
  html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview {
    font-size: 14px !important;
    padding: 1em
  }
}

@media print {
  html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn {
    display: none
  }
}

html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn {
  position: fixed;
  bottom: 8px;
  left: 8px;
  font-size: 28px;
  cursor: pointer;
  color: inherit;
  z-index: 99;
  width: 32px;
  text-align: center;
  opacity: .4
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn {
  opacity: 1
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc {
  position: fixed;
  top: 0;
  left: 0;
  width: 300px;
  height: 100%;
  padding: 32px 0 48px 0;
  font-size: 14px;
  box-shadow: 0 0 4px rgba(150, 150, 150, 0.33);
  box-sizing: border-box;
  overflow: auto;
  background-color: inherit
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar {
  width: 8px
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track {
  border-radius: 10px;
  background-color: transparent
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background-color: rgba(150, 150, 150, 0.66);
  border: 4px solid rgba(150, 150, 150, 0.66);
  background-clip: content-box
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a {
  text-decoration: none
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul {
  padding: 0 1.6em;
  margin-top: .8em
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc li {
  margin-bottom: .8em
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul {
  list-style-type: none
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview {
  left: 300px;
  width: calc(100% - 300px);
  padding: 2em calc(50% - 457px - 150px);
  margin: 0;
  box-sizing: border-box
}

@media screen and (max-width:1274px) {
  html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview {
    padding: 2em
  }
}

@media screen and (max-width:450px) {
  html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview {
    width: 100%
  }
}

html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview {
  left: 50%;
  transform: translateX(-50%)
}

html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc {
  display: none
}</style>
